package DAO;

/**
 *
 * @author eagle
 */
//import models.Logro;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.Query;

public class LogroDao {

    protected EntityManager em;
//    private Logro lg = new Logro();

    public LogroDao() {
        EntityManagerFactory emf =
                Persistence.createEntityManagerFactory("sischoolPU");
        em = emf.createEntityManager();
    }
    public LogroDao(EntityManager em) {
        this.em = em;
    }


//    public Logro crearLogro(Integer idAsignatura, Integer periodoEvaluacion, String descripcion) {
//
//        lg.setIdasignatura(idAsignatura);
//        lg.setDescripcion(descripcion);
//        lg.setPeriodoeva(periodoEvaluacion);
//        em.persist(lg);
//        return lg;
//    }

//    public Logro intanciarLogro(Object objeto) {
//        lg = (Logro) objeto;
//        return lg;
//    }

//    public Logro encontrarLogro(Integer idLogro) {
//        return em.find(Logro.class, idLogro);// con esta funcion se buscas un dato por primary key, el primer parametro es nuestra clase entidad
//    }

//    public Logro encontrarLogro(String descripcion) {
//        Query q = em.createQuery("SELECT lg FROM Logro lg WHERE lg.descripcion='" + descripcion + "'");
//        if (q.getResultList().isEmpty() == true) {
//            return null;
//        } else {
//            lg = (Logro) q.getSingleResult();
//            return lg;
//        }
//    }

//    public void borrarLogro(Integer idLogro) {
//        lg = encontrarLogro(idLogro);//en este caso podemos borrar un Area por nombre
//        if (lg != null) {//si no lo encuentra por supuesto no lo intenta borrar
//            em.remove(lg);// borra de la tabla ese registro
//        }
//
//    }

//    public Logro actualizarLogro(Integer idLogro, String descripcionNueva) {
//        Logro lg1; //Aqui se guardaria el posible dato duplicado de la BD, si no encuentra otro registro con nombre nuevo sera null
//        lg = encontrarLogro(idLogro); //Uso un metodo de esta misma clase que me retorna un solo dato con una busqueda por nombre
//        if (lg != null) {
//            /*
//            Ahora se verifica que los datos ingresados no existan ya en la BD
//             */
//            lg1 = encontrarLogro(descripcionNueva);
//            if (lg1 == null) {
//                lg.setDescripcion(descripcionNueva);
//            }
//        }
//        return lg;
//    }

    /*
    public List encontrarAreas() { //encontrar todos los usuarios
    Query query = em.createQuery("SELECT ar.nombreArea FROM Area ar");// Ojo la sentencia está en Java Query Language, no SQL
    List<Area> lista = query.getResultList();
    return (lista);
    }

    public List encontrarAreasId() { //encontrar todos los usuarios
    Query query = em.createQuery("SELECT ar.idArea FROM Area ar");// Ojo la sentencia está en Java Query Language, no SQL
    List<Area> lista = query.getResultList();
    return (lista);
    }
     */
//    public List<Logro> encontrarLogros(Integer idAsignatura, Integer idPeriodo) {
//        Query query = em.createQuery("SELECT lg.idlogro, lg.descripcion,lg.periodoeva FROM Logro lg WHERE lg.idasignatura =" + idAsignatura + "AND lg.periodoeva =" + idPeriodo);
//        List<Logro> lista = query.getResultList();
//        return lista;
//    }
}
